package org.springblade.modules.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.admin.entity.MaintainBusinessLog;
import org.springblade.modules.admin.vo.*;


/**
 * @author Sharry
 * @since 2023/2/9 17:13
 */

import java.util.Date;
import java.util.List;

public interface MaintainBusinessLogService extends BaseService<MaintainBusinessLog> {

    List<MaintainBusinessLog> listNewestGroupByElevator(List<Long> elevatorIds, int type);
	/**
	 * 根据对应业务类型分页
	 * @param page 分页参数
	 * @param paramKey 关键字id
	 * @param type 对应业务类型
	 * @param beginTime 开始时间
	 * @param endTime 结束时间
	 * @return 分页信息结果
	 */
	IPage<MaintainBusinessLogVO> selectLogPages(IPage<MaintainBusinessLogVO> page, Long paramKey, Integer type, String beginTime, String endTime);

	/**
	 * 根据id 查询单台电梯部分关系详情
	 * @param elevatorId 电梯Id
	 * @return 电梯部分关系详情
	 */
	ElevatorRelationDetailVO getRelationDetail(Long elevatorId);

	IPage<ElevatorSignLogVO> getSingleSignLog(Long elevatorId, String beginTime, String endTime, IPage<ElevatorSignLogVO> page,String tenantId);

	/**
	 * 根据电梯id查询电梯维修日志
	 * @param elevatorId 电梯id
	 * @param beginTime 开始时间
	 * @param endTime 结束时间
	 * @param page 分页参数
	 * @return 维修日志
	 */
    IPage<ElevatorRepairLogVO> getSingleRepairLog(Long elevatorId, Date beginTime, Date endTime, IPage<ElevatorRepairLogVO> page);

	/**
	 * 根据电梯id查询电梯救援日志
	 * @param elevatorId 电梯id
	 * @param beginTime 开始时间
	 * @param endTime 结束时间
	 * @param page 分页
	 * @return
	 */
	IPage<ElevatorRescueLogVO> getSingleRescueLog(Long elevatorId, Date beginTime, Date endTime, IPage<Object> page);
}
